#include <54func.h>
int main(int argc,char *argv[])
{
    //dirent:读取目录文件的内容,不仅仅是针对当前目录，因此需要命令行参数
    // ./8_myls.c dir1
    ARGS_CHECK(argc,2);
    DIR *dirp = opendir(argv[1]);

    ERROR_CHECK(dirp,NULL,"opendir");
    //读取（结构体）目录下的所有文件：循环+遍历（目录从磁盘到内存，会有一个位置指针，会自己自动滑动到下一个目录项）
    struct dirent * pdirent;//先定义一个指向结构体的指针,指向该结构体
    //犯了野指针错误！！
    //pdirent = readdir(dirp);//这是错误的写法，因为pdirent指针在循环中没有被更新，意味着始终指向同一个结构体，而不是流向到下一个目录项
    //循环+遍历    >> 读到目录流的末尾，则会返回NULL
    while((pdirent = readdir(dirp)) != NULL){
        printf("filename = %s\n",pdirent->d_name);
    }
    closedir(dirp);

    return 0;
}
